<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Insertar Socio</title>
        <link href="recursos/general.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            function crearComplete(xhr, status, args){               
                if(args.socioOK){
                    msgSocioOK.show();
                }else if(args.tipoPagoERR){
                    msgERR2.show();
                }else if(args.padrinoProyecto){
                    msgPadrino.show();
                }else if(args.ap){
                    msgApadrinamiento.show();
                }else if(args.errorap){
                    msgERR1.show();
                }else if(args.apOK){
                    msgApadrinamiento.hide();
                    msgPadrino.hide();
                    msgPadrinoOK.show();
                }else if(args.apOK1){
                    msgPadrino.hide();
                    msgPadrinoOK.show();
                }else if(args.incorrecto){
                    msgERR.show();
                }else if(args.repetido){
                    repetido.show();
                }else if(args.noCuenta){
                    noCuenta.show();
                }else if(args.noProyectos){
                    noProyecto.show();
                }
            } 
        </script>
    </h:head>
    <h:body>
        <h:form id="form">
            <!--Declaro la variable que pasaré a los bean para reutilizar las pantallas-->
            <f:metadata>
                <f:viewParam name="nuevo" value="#{sesionBean.strVariable}"/>
            </f:metadata>
            <f:phaseListener binding="#{sesionBean.phaseListenerImpl}"
                             type="ongd.web.PhaseListenerImpl"/>

            <!--Mensajes que se muestran cuando no se rellena un campo requerido -->
            <p:messages id="mensajes"/>
            
            <!--Nos mostrará el título de la página -->
            <h:outputText value="#{insertar_Persona.titulo}" styleClass="textoTitulo" style="margin-left: 100px;"/>

            <!--Panel que permite inserta un socio o padrino -->  
            <p:panel id="display" styleClass="panel1" style="margin-left: 100px;margin-right: 50px;">
                <table>
                    <tr>
                        <td>
                            <h:outputText value="DNI *:" styleClass="texto"/> 
                        </td>
                        <td>
                            <p:inputText id="Dni" value="#{insertar_Persona.persona.dni}" required="true" styleClass="textoI"/> 
                        </td>
                        <td>
                            <h:outputText value="Nombre *:" styleClass="texto"/>  
                        </td>
                        <td>
                            <p:inputText id="Nombre" value="#{insertar_Persona.persona.nombre}" required="true" styleClass="textoI"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <h:outputText value="Apellidos *:" styleClass="texto"/> 
                        </td>  
                        <td>
                            <p:inputText id="Apellidos" value="#{insertar_Persona.persona.apellidos}" required="true" styleClass="textoI"/> 
                        </td>
                        <td>
                            <h:outputText value="Fecha de Nacimiento *:" styleClass="texto"/>  
                        </td>
                        <td>
                            <p:calendar showOn="button" navigator="true" maxdate="new Date()" pattern="dd/MM/yyyy"
                                        value="#{insertar_Persona.persona.fechaNacimiento}" size="18" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <h:outputText value="Domicilio:" styleClass="texto"/>  
                        </td>
                        <td colspan="3">
                            <p:inputText value="#{insertar_Persona.persona.domicilio}" style="width: 440px !important;" styleClass="textoI"/> 
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <h:outputText value="Telefono:" styleClass="texto"/>  
                        </td>
                        <td>
                            <p:inputText value="#{insertar_Persona.persona.telefono}" styleClass="textoI"/>
                        </td>                        
                        <td colspan="2">      
                            <h:outputText value="Email:" styleClass="texto"/>
                            <p:inputText value="#{insertar_Persona.persona.email}" style="width: 245px !important; margin-left: 10px;" styleClass="textoI"/>  
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <h:outputText value="Domiciliacion:" styleClass="texto"/> 
                        </td>
                        <td>
                            <h:selectBooleanCheckbox id="domiciliacion" value="#{insertar_Persona.persona.domiciliacion}">
                                <p:ajax event="change" update="cuenta"/>
                            </h:selectBooleanCheckbox> 
                        </td>
                        <td>
                            <h:outputText value="Número Cuenta:" styleClass="texto"/> 
                        </td>
                        <td>
                            <p:inputText id="cuenta" value="#{insertar_Persona.persona.NCuenta}" disabled="#{!insertar_Persona.persona.domiciliacion}" styleClass="textoI"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <h:outputText value="Cantidad *:" styleClass="texto"/> 
                        </td>
                        <td>
                            <p:inputText value="#{insertar_Persona.persona.cantidad}" required="true" styleClass="textoI">
                                <f:convertNumber pattern="0.00"/>
                            </p:inputText>
                        </td>
                    </tr>
                </table>
            </p:panel> 

            <p:separator /> 

            <!--Panel que muestra el tipo de pago seleccionado para el socio -->
            <h:panelGrid  columns="2" cellspacing="2" styleClass="panel">                
                <p:dataTable id="panel" value="#{insertar_Persona.tipoPago}" var="fila" emptyMessage="No seleccionado" 
                             style="width: 220px" paginator="true" paginatorPosition="bottom" rows="3"> 
                    <f:facet name="header">
                        Tipo Pago
                    </f:facet>
                    <p:column headerText="Mes">                     
                        #{fila.mes}
                    </p:column> 
                </p:dataTable>
                <h:panelGrid columns="1">
                    <p:commandButton value="Añadir" onclick="tipoDialog.show();" type="Button" 
                                     style="height: 30px; width: 80px" styleClass="botonNormal"/>
                    <p:commandButton value="Limpiar" action="#{insertar_Persona.borrarTipoPago}" update="panel"  
                                     style="height: 30px; width: 80px" styleClass="botonNormal"/>
                </h:panelGrid>
            </h:panelGrid>
            <p:separator/>
            <p:commandButton value="Crear" action="#{insertar_Persona.guardarSocio}" oncomplete="crearComplete(xhr, status, args)" 
                             update="display, mensajes, panel" style="margin-left: 100px;" styleClass="botonGrande"/>

            <!--Dialogo que permite seleccionar el tipo de pago -->
            <p:dialog id="tipoDialog" header="Tipo de Pago" widgetVar="tipoDialog" resizable="false"  
                      width="400" height="100" closable="false" modal="true" styleClass="dialogoNormal">  
                <h:outputText value="Mes" style="margin-right: 20px;" styleClass="texto"/>  
                <h:selectOneMenu value="#{insertar_Persona.fmes.mes}">
                    <f:selectItem itemValue ="Enero"/>
                    <f:selectItem itemValue="Febrero"/>
                    <f:selectItem itemValue="Marzo"/>
                    <f:selectItem itemValue="Abril"/>
                    <f:selectItem itemValue="Mayo"/>
                    <f:selectItem itemValue="Junio"/>
                    <f:selectItem itemValue="Julio"/>
                    <f:selectItem itemValue="Agosto"/>
                    <f:selectItem itemValue="Septiembre"/>
                    <f:selectItem itemValue="Octubre"/>
                    <f:selectItem itemValue="Noviembre"/>
                    <f:selectItem itemValue="Diciembre"/>
                </h:selectOneMenu>                
                <p:commandButton value="Añadir" action="#{insertar_Persona.configurarTipoPago}" oncomplete="tipoDialog.hide();" update="panel" 
                                 style="height: 40px; width: 80px; margin-left: 20px;" styleClass="botonNormal"/>
            </p:dialog>

            <!--Dialogo que permite seleccionar un proyecto para relacionarle con un padrino -->
            <p:dialog header="Seleccionar proyecto" widgetVar="msgPadrino" width="400" height="130"
                      closable="false" modal="true" resizable="false" styleClass="dialogoNormal">  
                <h:outputText value="Elija el proyecto en el que participará el padrino" styleClass="texto2"/>
                <h:panelGrid columns="3" cellpadding="3">                    
                    <h:outputText value="Proyecto:" styleClass="texto"/>  
                    <h:selectOneMenu value="#{insertar_Persona.proyectoNombre}">  
                        <f:selectItems value="#{insertar_Persona.availableP}" />                      
                    </h:selectOneMenu>
                    <p:commandButton value="Aceptar" action="#{insertar_Persona.asignarProyecto}" oncomplete="crearComplete(xhr, status, args)" 
                                     update="apadrinadotable,display, panel" style="margin-left: 20px;" styleClass="botonNormal"/>
                </h:panelGrid>
            </p:dialog>

            <!--Dialogo que permite, en caso de seleccionar un proyecto de apadrinamiento personal, seleccionar un apadrinado -->
            <p:dialog widgetVar="msgApadrinamiento" header="Seleccionar Apadrinado" width="500" height="300" resizable="false" closable="false" modal="true" styleClass="dialogoNormal">
                <p:dataTable id="apadrinadotable" var="apadrinado" value="#{insertar_Persona.listaA}" paginator="true" paginatorPosition="bottom" 
                             selection="#{insertar_Persona.apadrinado}" rows="5">
                    <p:column selectionMode="single"/>
                    <p:column headerText="Nombre">
                        #{apadrinado.nombre}
                    </p:column>
                    <p:column headerText="Apellidos">
                        #{apadrinado.apellidos}
                    </p:column>
                    <p:column headerText="Apellidos">
                        #{apadrinado.fechaNacimiento}
                    </p:column>                    
                </p:dataTable>                
                <p:commandButton value="Aceptar" action="#{insertar_Persona.guardarPadrino}" oncomplete="crearComplete(xhr, status, args)"
                                 update="display,panel" style="margin-bottom: 5px; margin-top: 5px;" styleClass="botonNormal"/>
                <p:commandButton value="Cancelar" oncomplete="msgApadrinamiento.hide();" styleClass="botonNormal"/>                
            </p:dialog>

            <!--Mensale de confirmación que indica que el socio se ha creado correctamente -->
            <p:confirmDialog message="El socio se ha insertado correctamente." severity="info" widgetVar="msgSocioOK" modal="true"
                             styleClass="dialogoGrande"/>  

            <!--Mensaje de confirmación que indica que el padrino se ha insertado correctamente -->
            <p:confirmDialog message="El padrino se ha insertado correctamente." severity="info" widgetVar="msgPadrinoOK" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Mensaje de confirmación que indica que el no se ha podido realizar la inserción -->
            <p:confirmDialog message="No se ha podido realizar la inserción. Inténtelo de nuevo." severity="info" widgetVar="msgERR" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Mensaje de confirmación que indica que el dni ya está repetido -->
            <p:confirmDialog message="Ya existe una persona con ese mismo dni. Introduzca otro" severity="infor" widgetVar="repetido" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Mensaje de confirmación que indica que se debe de seleccionar un tipo de pago -->
            <p:confirmDialog message="Debe de seleccionar un tipo de pago." severity="info" widgetVar="msgERR2" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que nos indica que hay que seleccionar un apadrinado -->
            <p:confirmDialog message="Debe seleccionar un apadrinado." severity="info" widgetVar="msgERR1" modal="true"
                             styleClass="dialogoGrande"/>
            <!--Dialogo de confirmación que nos indica que hay que introducir un número de cuenta -->
            <p:confirmDialog message="Debe introducir un número de cuenta." severity="info" widgetVar="noCuenta" modal="true"
                             styleClass="dialogoGrande"/>
            
            <!--Dialogo de confirmación que nos indica que no se puede crear un padrino porque no hay proyectos -->
            <p:confirmDialog message="No se puede crear el padrino. No existen proyectos" severity="info" widgetVar="noProyecto" modal="true"
                             styleClass="dialogoGrande"/>
        </h:form>
    </h:body>
</html>